Syncing settings across incompatible operating systems

ABSTRACT

Example aspects include techniques for syncing configuration settings between incompatible operating systems. These techniques may include determining, via a first application, system-wide configuration information associated with a host system configuration parameter and a first configuration value of the host operating system, and transmitting a synchronization notification to a second application executing on a guest operating system, wherein the synchronization notification corresponding to the system-wide configuration information. In addition, the techniques may include configuring a guest system configuration parameter to a second configuration value based on the synchronization notification, and executing a third application on the guest operating system based on the second configuration value.

BACKGROUND

A computing environment may provide a guest operating system executingwithin a virtual machine using virtualized resources. In some instances,a virtual machine may provide the capability to run softwareapplications that are unavailable or inoperable on the underlying hostoperating system. For example, a guest operating system may provide ameans for executing an older application no longer supported by a newerhost operating system. Each virtual machine is isolated from its hostphysical system and other virtualized machines. Because of thisisolation, a guest operating system has separate system settings,application settings, and user settings from the host operating system.In addition, the configurable settings of the host operating system andthe guest operating system may have different nomenclature and/oracceptable values. As a result, guest applications executing within avirtual machine may suffer from poor usability, require frequentconfiguration activity, and present a steep learning curve to manyusers.

SUMMARY

The following presents a simplified summary of one or moreimplementations of the present disclosure in order to provide a basicunderstanding of such implementations. This summary is not an extensiveoverview of all contemplated implementations, and is intended to neitheridentify key or critical elements of all implementations nor delineatethe scope of any or all implementations. Its sole purpose is to presentsome concepts of one or more implementations of the present disclosurein a simplified form as a prelude to the more detailed description thatis presented later.

In an aspect, a method may include determining, via a first applicationexecuting on a host operating system, system-wide configurationinformation associated with a host system configuration parameter and afirst configuration value of the host operating system; transmitting asynchronization notification to a second application executing on aguest operating system, the synchronization notification correspondingto the system-wide configuration information; configuring, via thesecond application executing on the guest operating system, a guestsystem configuration parameter to a second configuration value based onthe synchronization notification; and executing a third application onthe guest operating system based on the second configuration value.

In another aspect, a device may include a memory; and at least oneprocessor coupled to the memory and configured to: determine, via afirst application executing on a host operating system, system-wideconfiguration information associated with a host system configurationparameter and a first configuration value of the host operating system;transmit a synchronization notification to a second applicationexecuting on a guest operating system, the synchronization notificationcorresponding to the system-wide configuration information; configure,via the second application executing on the guest operating system, aguest system configuration parameter to a second configuration valuebased on the synchronization notification; and execute a thirdapplication on the guest operating system based on the secondconfiguration value.

In another aspect, an example computer-readable medium storinginstructions for performing the methods described herein and an exampleapparatus including means of performing operations of the methodsdescribed herein are also disclosed.

Additional advantages and novel features relating to implementations ofthe present disclosure will be set forth in part in the description thatfollows, and in part will become more apparent to those skilled in theart upon examination of the following or upon learning by practicethereof.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is set forth with reference to the accompanyingfigures, in which the left-most digit of a reference number identifiesthe figure in which the reference number first appears. The use of thesame reference numbers in the same or different figures indicatessimilar or identical items or features.

FIG. 1 is a diagram showing an example computing device for syncingconfiguration settings between incompatible operating systems, inaccordance with some aspects of the present disclosure.

FIG. 2 is a schematic diagram showing an example computing architecturefor syncing configuration settings between incompatible operatingsystems, in accordance with some aspects of the present disclosure.

FIG. 3A illustrates a first example graphical user interface (GUI) formodifying configuration settings of a guest application within a hostoperating system, in accordance with some aspects of the presentdisclosure.

FIG. 3B illustrates a second example GUI for modifying configurationsettings of a guest application within a host operating system, inaccordance with some aspects of the present disclosure.

FIG. 3C illustrates a third example GUI for modifying configurationsettings of a guest application within a host operating system, inaccordance with some aspects of the present disclosure.

FIG. 4A illustrates a first example GUI for modifying configurationsettings applied to host applications and guest applications, inaccordance with some aspects of the present disclosure.

FIG. 4B illustrates a second example GUI for modifying configurationsettings applied to host applications and guest applications, inaccordance with some aspects of the present disclosure.

FIG. 4C illustrates a third example GUI for modifying system-wideconfiguration settings applied to host applications and guestapplications, in accordance with some aspects of the present disclosure.

FIG. 5 is a flow diagram showing an example process for syncingconfiguration settings between incompatible operating systems, inaccordance with some aspects of the present disclosure.

FIG. 6 is a schematic block diagram of example components of thecomputing device of FIG. 1 , according to aspects of the presentdisclosure in accordance with some aspects of the present disclosure.

DETAILED DESCRIPTION

This disclosure describes techniques for synchronizing system settingsin a computing environment. In particular, aspects of the presentdisclosure provide syncing of configuration settings between a firsthost operating system and one or more incompatible guest operatingsystems.

In accordance with some aspects of the present disclosure, a computingsystem may include a first plurality of applications executing on a hostoperating system of the computing device, and a second plurality ofapplications executing within a guest operating system of the computingdevice. As used herein, in some aspects, an “application” may refer tosoftware applications, mobile applications, mobile apps, computerprograms, software programs, etc. Some examples of the applications thatmay execute within the host operating system and/or the guest operatingsystem may include productivity applications, application stores, mediaapplications, web browsers, calendar applications, navigationapplications, video game applications, social media applications,fitness applications, etc. In addition, as used herein, in some aspects,a “host operating system” may refer to an operating system on thecomputing device that interacts with hardware of the computing device.As used herein, in some aspects, a “guest operating system” may refer toan operating system installed with a virtual machine of the computingdevice. Some examples of the host operating system or the guestoperating system include Microsoft Windows operating systems, GoogleChrome OS operating system, Google Android operating systems, Apple OSand iOS operating systems, Linux operating systems, BSD operatingsystems, and UNIX operating systems.

In addition, the operating systems may have system-wide configurationsettings applicable to the first plurality of applications and thesecond plurality of applications, respectively. In addition, eachindividual application may have application-specific configurationsettings. Some examples of configuration settings include, but are notlimited to, language settings, date and time settings, accessibilitysettings, battery settings, location information settings, usersettings, security settings, and/or a privacy settings. As used herein,in some aspects, an “incompatible guest operating system” may refer to aguest operating system with one or more settings parameters and/orsettings values that are different from the host operating system. Forexample, the guest operating system may use the settings parameter“volume,” and the host operating system may use the settings parameter“sound” or “master volume.” As another example, the guest operatingsystem may set the font size of text displayed by the guest operatingsystem using a quantitative value (e.g., numeric font size), and thehost operating system may set the font size of text displayed by thehost operating system using a qualitative value (e.g., small, medium,large).

As described herein, the computing device may seamlessly synchronizesystem-wide configuration settings between the host operating system andthe guest operating system and employ the host operating system tomodify application settings of individual applications executing on theguest operating system to improve ease of use, usability, and/or userexperience. For instance, as described in detail herein, the system-wideconfiguration settings of the guest operating system may be based on thesystem-wide configuration settings of the host operating system evenwhen the configuration settings of the guest operating system are notidentical to the configuration settings of the host operating system.For example, a user may update the language setting of the hostoperating system from English to Spanish, and the computing device mayautomatically update a corresponding setting of the guest operatingsystem from English to Spanish even though the setting name or settingvalue for the language settings are not identical. Further, in someinstances, a user may modify configuration settings for an applicationexecuting within the guest operating system using a settings managementmodule of the host operating system. Additionally, in some instances, auser may be required to modify system-wide settings of the guestoperating system by modifying the configuration settings of the hostoperating system. For example, if a user attempts to launch a settingsmanagement module of the guest operating system from within anapplication executing within the guest operating system, the computingdevice will instead present the setting management module of the hostoperating system, which is configured to modify the system-wide settingsof the host operating system and the guest operating system.

Seamlessly synchronizing system-wide configuration settings between thehost operating system and the guest operating system and employing thehost operating system to modify application settings of individualapplications executing on the guest operating system provides a uniformconfiguration (e.g., language, presentation, accessibility, etc.) and/orconfiguration process for applications executing within the hostoperating system and the guest operating system. Accordingly, thesystems, devices, and methods described herein provide techniques foremploying virtualization techniques to increase the amount ofapplications accessible on a computing device while increasing theusability and integration of guest applications executing on a guestoperating system of the computing device.

Illustrative Environment

FIG. 1 is a schematic diagram showing an example computing device 100for synchronizing configuration setting across incompatible operatingsystems, in accordance with some aspects of the present disclosure.

As illustrated in FIG. 1 , the computing device 100 may include a hostoperating system 102 and a synchronization client 104 executing on thehost operating system 102. Further, the computing device 100 may includea virtual machine 106 configured to provide virtualized resources to aguest operating system 108. In particular, a synchronization application110 and a guest application 112 may execute on the guest operatingsystem 108 using the virtualized resources provided by the virtualmachine 106. Although FIG. 1 illustrates one virtual machine 106operating on the computing device 100, the computing device 100 mayinclude a plurality of virtual machines each implementing aspects of thepresent disclosure.

As described herein in detail, the synchronization client 104 and thesynchronization application 110 may be configured to synchronizeconfiguration settings between the host operating system 102 and theapplications (e.g., the guest application 112) executing on the guestoperating system 108. For example, the guest application 112 may be anelectronic book (e-book) reader application. Further, a user of thecomputing device 100 may enable one or more accessibility features(e.g., keyboard, mouse, and screen options for users who have difficultytyping or viewing a display of the computing device 100) of the hostoperating system 102 to assist user interaction with the computingdevice 100. In some aspects, the synchronization client 104 maydetermine configuration information (e.g., the enabled accessibilitysettings and the values of the enabled accessibility settings selectedby the user), and provide the configuration information to thesynchronization application 110. Upon receipt of the configurationinformation, the synchronization application 110 may determinecorresponding accessibility settings of the guest operating system 108,and enable the corresponding accessibility settings on the guestoperating system 108 using values corresponding to the values selectedby the user. As a result, the accessibility settings will also beapplied to the applications executing on the guest operating system 108.For example when the endeavors to read an e-book via the guestapplication 112, the user will have the benefit of the accessibilitysettings enabled for improving readability of documents within the hostoperating system 102.

Further, in some aspects, the host operating system 102 may beconfigured to provide similar operations for accessingapplication-specific configuration settings of applications executing onthe host operating system (e.g., the synchronization client 104) andapplications executing on the guest operating system 108 (e.g., theguest application 112). For example, the host operating system 102 maybe configured to display a GUI that lists applications executing on thehost operating system 102 and applications executing on the guestoperating system 108. In addition, individual applications may beselectable within the list, and the host operating system 102 may beconfigured to cause display of a GUI for modifying the configurationsettings of the guest application 112. In some instances, the hostoperating system 102 may be configured to cause the guest application112 to display of a GUI for modifying the configuration settings of theguest application 112.

Additionally, in some aspects, the synchronization application 110 maybe configured to detect request to modify the configuration settings ofthe guest operating system 108, and cause the host operating system 102to display a GUI for modifying the configuration settings of the hostoperating system 102. In addition, once the user modifies theconfiguration settings within the GUI displayed by the host operatingsystem 102, the synchronization client 104 may update the configurationsettings of the guest operating system 108 in view of the modificationsto the configuration settings of the host operating system 102. Forexample, the user may select a GUI control for updating theconfiguration settings of the guest operating system 108 while readingan e-book within the guest application 112. In response, thesynchronization application 110 may cause the host operating system 102to display a GUI for modifying the configuration settings of the hostoperating system 102, while prohibiting the guest operating system 108from displaying a GUI for modifying the configuration settings of theguest operating system 108.

FIG. 2 illustrates an example architecture 200 of the example computingdevice 100 for synchronizing configuration settings across incompatibleoperating systems, in accordance with some aspects of the presentdisclosure. As illustrated in FIG. 2 , the computing device 100 mayinclude the host operating system 102, the synchronization client 104,the virtual machine application 202, a plurality of other applications204(1)-(N) executing on the host operating system 102, and one or morevirtual machines 106(1)-(N) executing on the host operating system 102.

The host operating system 102 may include configuration settings 206defining system-wide settings applicable to the host operating system102, the synchronization client 104, the virtual machine application202, the plurality of other applications 204, and/or the guestapplications 112(1)-(N) of the virtual machines 106(1)-(N). For example,the configuration settings 206 may include, but are not limited to, thelanguage settings, date and time settings, accessibility settings,battery settings, location information settings, user settings, securitysettings, and/or a privacy settings applicable to the host operatingsystem 102, the synchronization client 104, the virtual machineapplication 202, the plurality of other applications 204, and/or theguest applications 112(1)-(N) of the virtual machines 106(1)-(N).Further, the host operating system 102 may include a settings module 208configured to modify the configuration settings 206 and facilitate themodification of application-specific settings for the host operatingsystem 102, the synchronization client 104, the virtual machineapplication 202, the plurality of other applications 204, and/or theguest applications 112(1)-(N) of the virtual machines 106(1)-(N). Inaddition, the host operating system 102 may include one or moreregistries 210 configured to store information on the applicationsinstalled on the computing device 100, and one or more listeners 212configured to detect updates to the configuration settings 206 andnotify the synchronization client 104 of the occurrence of an update.

The virtual machine application 202 may be configured to generate andexecute the virtual machines 106(1)-(N). Further, the virtual machineapplication 202 may be configured to facilitate communications betweenthe synchronization client 104 and the virtual machines 106(1)-(N). Forexample, in some aspects, the virtual machine application 202 may beconfigured to provide a channel over a virtual machine bus forcommunication between the synchronization client 104 and the virtualmachine 106(1). In some aspects, the virtual machine application 202 maybe a hypervisor.

The synchronization client 104 may be configured to determineconfiguration information 218, and provide the configuration information218 to the synchronization application 110. Further, in some aspects,the synchronization client 104 may possess standard applicationprivileges as opposed to one or more privileges associated with the hostoperating system 102 or a manufacturer of the computing device 100 orthe host operating system 102. As illustrated in FIG. 2 , thesynchronization client 104 may include a synchronization manager 214 anda conversion module 216. The synchronization manager 214 may beconfigured to determine the configuration information based on theconfiguration settings 206. In some aspects, the configurationinformation may include a configuration parameter of the host operatingsystem 102 and an acceptable configuration value for the configurationparameter within the host operating system 102. As an example, theconfiguration parameter may be “system language,” and the configurationvalue may be “EN” which may represent a recent update of the “systemlanguage” to the English language in the host operating system 102.

In some instances, the synchronization manager 214 may determine theconfiguration information 218 by transmitting a request to the hostoperating system 102 for the configuration settings 206 and/ortransmitting a request to the host operating system 102 for any updatesto the configuration settings 206 over a predefined period of time(e.g., since the last request was transmitted). In response, the hostoperating system 102 may transmit the configuration information 218 tothe synchronization client 104. In some aspects, the synchronizationmanager 214 may employ a public application programming interface (API)provided by the host operating system 102 to execute the request.

Additionally, or alternatively, the synchronization manager 214 mayconfigure a listener 212 to transmit a listener notification to thesynchronization manager 214 when the configuration settings 206 havebeen updated. In some instances, the listener notification may includethe configuration information 218. In some other instances, thesynchronization client 104 may request and receive the configurationinformation 218 in response to receipt of the listener notification.

Further, as illustrated in FIG. 2 , the synchronization manager 214 maytransmit a synchronization notification 220 to the virtual machine106(1). In some aspects, the synchronization client 104 may employ theconversion module 216 to convert the configuration information 218,which is not usable by the guest operating system 108, to anintermediate representation, and transmit the intermediaterepresentation within the synchronization notification 220. In someinstances, the intermediate representation may be a platform-independent(i.e., independent of the parameters or values of the operating systems)representation of the configuration information 218 of the hostoperating system 102. Further, in some aspects, the platformindependence of the intermediate representation may establish a contractthat provides extensibility and stability, as any guest operating systemmay be used in accordance with the present disclosure if logic forconverting from the intermediate representation to a representationcompatible with the guest operating system is provided. In some aspects,transmitting the synchronization client 104 may include serializing theintermediate representation and transmitting the serialized informationvia a channel of a virtual machine bus provided by the virtual machineapplication 202.

As an example, the conversion module 216 may convert the configurationparameter “system language” of the configuration information 218 to anintermediate representation of “locale,” and the configuration value“English” of the configuration information 218 to an intermediaterepresentation of a language tag representing American English (e.g.,“en-US”, an Internet Engineering Task Force (IETF) best current practice(BCP) 47 tag). As another example, the conversion module 216 may convertthe configuration parameter “geotracking” of the configurationinformation 218 to an intermediate representation of “location privacy,”and the configuration value “enabled” of the configuration information218 to an intermediate representation of “permit.” In some aspects, theconversion module 216 may include mapping information that maps theconfiguration parameters and configuration values of the host operatingsystem 102 to intermediate representations. Further, the conversionmodule 216 may determine the intermediate representations based on themapping information. Additionally, or alternatively, in some aspects,the conversion module 216 may determine a configuration format of theguest operating system 108, and determine a destination representationbased upon the configuration format of the guest operating system 108.Further, the synchronization manager 214 may transmit the destinationrepresentation within the synchronization notification 220. In someinstances, the destination representation may be a representationcompatible with and/or at least partially acceptable by the guestoperating system 108.

The synchronization application 110 may configure the settings 222 ofthe guest operating system 108. For example, the synchronization manager224 associated with the guest operating system 108 may receive thesynchronization notification 220(1) and configure the settings 222 ofthe guest operating system 108 based on the synchronization notification220(1). In some aspects, the synchronization manager 224 may employ theconversion module 226 to convert intermediate representations includedin the synchronization notifications 220(1)-(N) to destinationrepresentations applicable using the guest operating system 108. Forexample, the conversion module 226 may convert the intermediaterepresentation configuration parameter “locale” to a destinationrepresentation of “region,” and the intermediate representationconfiguration value “en-US” to a destination representation of “UnitedStates.” As another example, the conversion module 226 may convert theintermediate representation configuration parameter “location privacy”to a destination representation of “location tracking,” and theintermediate representation configuration value “permit” to adestination representation of “allow.” In some aspects, the conversionmodule 226 may include mapping information that maps the intermediaterepresentations to configuration parameters and configuration values atthe guest operating system information 108(1). Further, the conversionmodule 226 may determine the configuration parameters and configurationvalues based on the mapping information. Once the conversion module 226determines the destination representations, the synchronization manager224 may update the settings 222 based on the destinationrepresentations. For example, the synchronization manager 224 may set“location tracking” to “allow” within the settings 222. As a result, oneor more location tracking operations performed by the guest application112(1) will be permitted based on configuration settings 206. In someinstances, the synchronization application 110 may require one or moreelevated privileges to modify the settings 222 of the guest operatingsystem 108. As such, the synchronization application 110 may possess oneor more credentials associated with a developer and/or publisher of theguest operating system 108.

Further, as illustrated in FIG. 2 , the guest application 112(1) mayinclude settings 228 and a settings module 230 for configuring thesettings 228 of the guest application 112. In some aspects, uponinstallation of the guest application 112 on the virtual machine 106(1),the guest application 112 may be registered within the one or moreregistries 210 of the host operating system 102. As a result of theregistration, a custom link to the settings module 230 is associatedwith the guest application 112. Further, the custom link may bedisplayed within a configuration GUI for modifying application settingsof individual applications installed on the host operating system 102.Upon activation of the custom link (e.g., a selection of the guestapplication 112 within the configuration GUI), the host operating system102 may be configured to cause execution of the settings module 230 inorder to permit modification to the settings 228 of the guestapplication 112(1). As a result, the configuration GUI presented to theuser may be a centralized location for modifying the settings ofapplications on the computing device 100 independent of whether theapplication executes on the host operating system 102 or the guestoperating systems 108(1)-(N). For instance, the settings module 208 maycause transmission of a configuration request 232(1) via thesynchronization client 104 to the guest operating system 108 to executethe settings module 230. Alternatively, the settings module 208 maytransmit the configuration request 232(1) directly to the guestoperating system 108 without using the synchronization client 104. Insome aspects, the guest operating system 108 may be the Google Androidoperating system, and the configuration requests 232(1)-(N) may be anIntent within the Google Android operating system.

Further, in some aspects, a user may endeavor to modify the settings 222of the guest operating system 108 from the guest application 112(1). Insome aspects, the action may be intercepted, and the guest operatingsystem 108 and/or the synchronization manager 224 may transmit aconfiguration request 232 via the synchronization client 104 to the hostoperating system 102. Alternatively, the guest operating system 108and/or the synchronization manager 224 may transmit the configurationrequest 232 directly to the host operating system 102 without using thesynchronization client 104. In response to receipt of the configurationrequest 232, the host operating system 102 may execute the settingsmodule 208, which may be configured to modify the configuration settings206. As such, the user may be denied access to a native settings module234 of the guest operating system 108 for modifying the settings 222.Instead, the user may be forced to make all modifications to thesettings 222 using the same mechanism for modifying the configurationsettings 206. In some aspects, the guest operating system 108 may be theGoogle Android operating system, and the intercepted action may be anIntent within the Google Android operating system.

FIGS. 3A-3C illustrate a configuration GUI 300 configured to modifyconfiguration settings of a guest application within a host operatingsystem, in accordance with some aspects of the present disclosure. Asillustrated in FIG. 3A, the host operating system 102 may display aconfiguration GUI 300 including a list 302 of the applications executingon the host operating system 102 and the applications executing on thevirtual machines 106(1)-(N). Further, as illustrated in FIG. 3B, when auser selects an application within the list 302, the configuration GUI300 may present an advanced options control 304. As illustrated in FIG.3C, upon selection of the advanced options control 304, theconfiguration GUI 300 may display modifiable settings 306 for theselected application. For example, as described in detail herein, thehost operating system 102 may be configured to cause execution of thesettings module 230 in order to permit modification to the settings 228of the guest application 112(1) within the configuration GUI 300.Further, in some aspects, the appearance and/or style (e.g., userinterface elements, themes, fonts, etc.) of the settings module 230within the configuration GUI 300 may differ from the appearance and/orstyle of the advanced options control 304. For example, the settingsmodule 230 may employ a GUI library of the guest operating system 108while the advanced options control 304 may employ a GUI library of thehost operating system 102.

FIGS. 4A-4C illustrate a configuration GUI 400 configured to modifysystem-wide configuration settings applied to host applications andguest applications, in accordance with some aspects of the presentdisclosure. As illustrated in FIG. 4A, the host operating system 102 maydisplay a configuration GUI 400 including a list 402 of categories forthe configuration settings 206. Further, as illustrated in FIG. 4B, whena user selects a category within the list 402, e.g., “Privacy” in thisnon-limiting example, the configuration GUI may present a list 404 ofindividual settings of the configuration settings 206. Further, asillustrated in FIG. 4C, upon selection of an individual setting control,e.g., “Location” in this non-limiting example, the configuration GUI 300may display modifiable settings 406 for the selected configurationsetting 206. As described in detail herein, modification to the selectedconfiguration setting 206 may be applied to the applications executingon the host operating system 102 (e.g., synchronization client 104, theplurality of other applications 204(1)-(N)) and applications executingon the guest operating systems 108(1)-(N) (e.g., guest application112(1)).

Example Process

The processes described in FIG. 5 below are illustrated as a collectionof blocks in a logical flow graph, which represent a sequence ofoperations that can be implemented in hardware, software, or acombination thereof. In the context of software, the blocks representcomputer-executable instructions stored on one or more computer-readablestorage media that, when executed by one or more processors, perform therecited operations. Generally, computer-executable instructions includeroutines, programs, objects, components, data structures, and the likethat perform particular functions or implement particular abstract datatypes. The order in which the operations are described is not intendedto be construed as a limitation, and any number of the described blockscan be combined in any order and/or in parallel to implement theprocesses. The operations described herein may, but need not, beimplemented using the computing device 100. By way of example and notlimitation, the method 500 is described in the context of the computingdevice 100 of FIGS. 1-2 and 6 , and the GUIs of FIGS. 3A-3C and 4A-4C.For example, the operations may be performed by one or more of the hostoperating system 102, the synchronization client 104, the virtualmachine 106(1)-(N), the guest operating system 108, the synchronizationapplication 110, the guest application 112(1), the virtual machineapplication 202, the synchronization manager 224, and/or the conversionmodule 226.

FIG. 5 is a flow diagram showing an example method 500 for synchronizingconfiguration setting across incompatible operating systems, inaccordance with some aspects of the present disclosure.

At block 502, the computing device may determine, via a firstapplication executing on a host operating system, system-wideconfiguration information associated with a host system configurationparameter and a first configuration value of the host operating system.

For example, the synchronization manager 214 may determine theconfiguration information 218 by transmitting a request to the hostoperating system 102 for the configuration settings 206 and/ortransmitting a request to the operating system for any updates to theconfiguration settings 206 over a predefined period of time (e.g., sincethe last request was transmitted). In response, the host operatingsystem 102 may transmit the configuration information 218 (i.e., thesystem-wide configuration information) to the synchronization client104. Further, the configuration information 218 may include theconfiguration parameter “system language,” and the configuration value“English.” As another example, the synchronization manager 214 mayconfigure a listener 212 to transmit a listener notification to thesynchronization manager 214 when the configuration settings 206 havebeen updated. In some instances, the listener notification may includethe configuration information 218. In some other instances, thesynchronization client 104 may request and receive the configurationinformation 218 in response to receipt of the listener notification.

Accordingly, the computing device 100 or the processor 602 executing thesynchronization client 104 may provide means for determining, via afirst application executing on a host operating system, system-wideconfiguration information associated with a host system configurationparameter and a first configuration value of the host operating system.

At block 504, the computing device may transmit a synchronizationnotification to a second application executing on a guest operatingsystem, the synchronization notification corresponding to thesystem-wide configuration information. For example, the synchronizationmanager 214 may transmit a synchronization notification 220(1) to thesynchronization application 110. In some aspects, the synchronizationclient 104 may employ the conversion module 216 to convert theconfiguration information 218 to an intermediate representation, andtransmit the intermediate representation within the synchronizationnotification 220(1). As an example, the conversion module 216 mayconvert the configuration parameter “system language” to “locale,” andthe configuration value “English” to a language tag representingAmerican English (e.g., “en-US”).

Accordingly, the computing device 100 or the processor 602 executing thesynchronization manager 214 may provide means for transmitting asynchronization notification to a second application executing on aguest operating system, the synchronization notification correspondingto the system-wide configuration information.

At block 506, the computing device may configure, via the secondapplication executing on the guest operating system, a guest systemconfiguration parameter to a second configuration value based on thesynchronization notification. For example, the synchronization manager224 may receive the synchronization notification 220(1) and configurethe settings 222 of the guest operating system 108 based on thesynchronization notification 220(1). In particular, the synchronizationmanager 224 may employ the conversion module 226 to convert theconfiguration parameter “locale” to “region,” and “en-US” to “UnitedStates.” Further, the synchronization manager 224 may set the “region”setting to “United States” within the settings 222 of the guestoperating system 108 based upon the conversion operations

Accordingly, the computing device 100, or the processor 602 executingthe synchronization manager 224 may provide means for configuring, viathe second application executing on the guest operating system, a guestsystem configuration parameter to a second configuration value based onthe synchronization notification.

At block 508, the computing device may execute a third application onthe guest operating system based on the second configuration value. Forexample, the guest application 112 will execute the guest application112 with text and images in English based on the region setting in thesettings 222.

Accordingly, the computing device 100, or the processor 602 executingthe guest operating system 108 may provide means for executing a thirdapplication based on the second configuration value.

In an alternative or additional aspect, in order to determine thesystem-wide configuration information, the method 500 comprisestransmitting, to the host operating system, a request for updates to aplurality of system-wide setting parameters of the host operatingsystem, and receiving, in response to the request, the system-wideconfiguration information indicating a selection of the firstconfiguration value for the host system configuration parameter. In analternative or additional aspect, in order to determine the system-wideconfiguration information, the method 500 comprises receiving, from alistener registered to monitor for an update to the host systemconfiguration parameter, the system-wide configuration informationindicating a selection of the first configuration value.

In an alternative or additional aspect, in order to transmit thesynchronization notification, the method 500 comprises converting atleast one of the host system configuration parameter and/or the firstconfiguration value to a platform independent intermediaterepresentation. In an alternative or additional aspect, in order toconfigure the guest system configuration parameter, the method 500comprises determining at least one of the guest system configurationparameter or the second configuration value based at least in part onthe platform independent intermediate representation.

In an alternative or additional aspect, wherein the host systemconfiguration parameter may be a first host system configurationparameter, the guest system configuration parameter may be first guestsystem configuration parameter, and the method 500 further comprisesdetecting a guest system request, initiated by a fourth applicationexecuting on the guest operating system, to modify a second guest systemconfiguration parameter of the guest operating system; transmitting, bythe second application to the first application, a configuration requestcorresponding to the second guest system configuration parameter;presenting, based on the configuration request, a host systemconfiguration GUI configured to modify a second host systemconfiguration parameter associated with the second guest systemconfiguration parameter; receiving, via the host system configurationGUI, a user-submitted configuration value for the second host systemconfiguration parameter; and executing a fifth application on the guestoperating system or the host operating system based on theuser-submitted configuration value.

In an alternative or additional aspect, the method 500 further comprisespresenting a host system configuration GUI including a control formodifying configuration parameters of a plurality of applicationsexecuting on the host operating system and a plurality of applicationsexecuting on the guest operating system; transmitting, by the hostoperating system, a configuration request to modify a configurationparameter of a fourth application on the guest operating system based ona selection within the host system configuration GUI; and presenting,via a virtualization platform of the host operating system, a settingsmodule of the fourth application.

In an alternative or additional aspect, the host system configurationparameter includes at least one of a language setting, a date setting, atime setting, an accessibility setting, a battery setting, a locationinformation setting, a user setting, and/or a privacy setting.

While the operations are described as being implemented by one or morecomputing devices, in other examples various systems of computingdevices may be employed. For instance, a system of multiple devices maybe used to perform any of the operations noted above in conjunction witheach other. For example, a car with an internal computing device alongwith a mobile computing device may be employed in conjunction to performthese operations.

Illustrative Computing Device

Referring now to FIG. 6 , an example 600 of the computing device 100 inaccordance with an implementation includes additional component detailsas compared to FIGS. 1-2 . In one example, the computing device 100includes the processor 602 for carrying out processing functionsassociated with one or more of components and functions describedherein. The processor 602 can include a single or multiple set ofprocessors or multi-core processors. Moreover, the processor 602 may beimplemented as an integrated processing system and/or a distributedprocessing system. In an example, the processor 602 includes, but is notlimited to, any processor specially programmed as described herein,including a controller, microcontroller, a computer processing unit(CPU), a graphics processing unit (GPU), an application specificintegrated circuit (ASIC), a field programmable gate array (FPGA), asystem on chip (SoC), or other programmable logic or state machine.Further, the processor 602 may include other processing components suchas one or more arithmetic logic units (ALUs), registers, or controlunits.

In an example, the computing device 100 also includes the memory 604 forstoring instructions executable by the processor 602 for carrying outthe functions described herein. The memory 604 may be configured forstoring data and/or computer-executable instructions defining and/orassociated with the host operating system 102, synchronization client104, the virtual machines 106(1)-(N), the guest operating system 108,the synchronization application 110, the guest applications 112(1)-(N),the virtual machine application 202, and the plurality of otherapplications 204(1)-(N), and the processor 602 may execute the hostoperating system 102, synchronization client 104, the virtual machines106(1)-(N), the guest operating system 108, the synchronizationapplication 110, the guest applications 112(1)-(N), the virtual machineapplication 202, and the plurality of other applications 204(1)-(N). Anexample of memory 604 may include, but is not limited to, a type ofmemory usable by a computer, such as random access memory (RAM), readonly memory (ROM), tapes, magnetic discs, optical discs, volatilememory, non-volatile memory, and any combination thereof. In an example,the memory 604 may store local versions of applications being executedby processor 602.

The example computing device 100 also includes a communicationscomponent 606 that provides for establishing and maintainingcommunications with one or more parties utilizing hardware, software,and services as described herein. The communications component 606 maycarry communications between components on the computing device 100, aswell as between the computing device 100 and external devices, such asdevices located across a communications network and/or devices seriallyor locally connected to the computing device 100. For example, thecommunications component 606 may include one or more buses, and mayfurther include transmit chain components and receive chain componentsassociated with a transmitter and receiver, respectively, operable forinterfacing with external devices.

The example computing device 100 also includes a data store 608, whichmay be any suitable combination of hardware and/or software, thatprovides for mass storage of information, databases, and programsemployed in connection with implementations described herein. Forexample, the data store 608 may be a data repository for the hostoperating system 102, synchronization client 104, the virtual machines106(1)-(N), the guest operating system 108, the synchronizationapplication 110, the guest applications 112(1)-(N), the virtual machineapplication 202, and the plurality of other applications 204(1)-(N).

The example computing device 100 also includes a user interfacecomponent 610 operable to receive inputs from a user of the computingdevice 100 and further operable to generate outputs for presentation tothe user. The user interface component 610 may include one or more inputdevices, including but not limited to a keyboard, a number pad, a mouse,a touch-sensitive display (e.g., display 612), a digitizer, a navigationkey, a function key, a microphone, a voice recognition component, anyother mechanism capable of receiving an input from a user, or anycombination thereof. Further, the user interface component 610 mayinclude one or more output devices, including but not limited to adisplay (e.g., display 612), a speaker, a haptic feedback mechanism, aprinter, any other mechanism capable of presenting an output to a user,or any combination thereof.

In an implementation, the user interface component 610 may transmitand/or receive messages corresponding to the operation of the hostoperating system 102, synchronization client 104, the virtual machines106(1)-(N), the guest operating system 108, the synchronizationapplication 110, the guest applications 112(1)-(N), the virtual machineapplication 202, and the plurality of other applications 204(1)-(N). Inaddition, the processor 602 executes the host operating system 102,synchronization client 104, the virtual machines 106(1)-(N), the guestoperating system 108, the synchronization application 110, the guestapplications 112(1)-(N), the virtual machine application 202, and theplurality of other applications 204(1)-(N), and the memory 604 or thedata store 608 may store them.

While the host operating system 102, synchronization client 104, thevirtual machines 106(1)-(N), the guest operating system 108, thesynchronization application 110, the guest applications 112(1)-(N), thevirtual machine application 202, and the plurality of other applications204(1)-(N), are illustrated as part of the processor 602,implementations of the present disclosure are not limited to thisexample, in other examples, the host operating system 102,synchronization client 104, the virtual machines 106(1)-(N), the guestoperating system 108, the synchronization application 110, the guestapplications 112(1)-(N), the virtual machine application 202, and theplurality of other applications 204(1)-(N), may be implemented in one ormore components/subcomponents of the computing device 100.

Example Clauses

The following example clauses describe various aspects of the presentdisclosure.

A. A method comprising: determining, via a first application executingon a host operating system, system-wide configuration informationassociated with a host system configuration parameter and a firstconfiguration value of the host operating system; transmitting asynchronization notification to a second application executing on aguest operating system, the synchronization notification correspondingto the system-wide configuration information; configuring, via thesecond application executing on the guest operating system, a guestsystem configuration parameter to a second configuration value based onthe synchronization notification; and executing a third application onthe guest operating system based on the second configuration value.

B. The method as clause A recites, wherein determining the system-wideconfiguration information comprises: transmitting, to the host operatingsystem, a request for updates to a plurality of system-wide settingparameters of the host operating system; and receiving, in response tothe request, the system-wide configuration information indicating aselection of the first configuration value for the host systemconfiguration parameter.

C. The method as clause A recites, wherein determining the system-wideconfiguration information comprises receiving, from a listenerregistered to monitor for an update to the host system configurationparameter, the system-wide configuration information indicating aselection of the first configuration value.

D. The method as any of clauses A-C recite, wherein transmitting thesynchronization notification comprises: converting at least one of thehost system configuration parameter and/or the first configuration valueto a platform independent intermediate representation.

E. The method as any of clause E recites, wherein configuring the guestsystem configuration parameter comprises: determining at least one ofthe guest system configuration parameter or the second configurationvalue based at least in part on the platform independent intermediaterepresentation.

F. The method as any of clause A-E recite, wherein the host systemconfiguration parameter is a first host system configuration parameter,the guest system configuration parameter is a first guest systemconfiguration parameter, and further comprising: detecting a guestsystem request, initiated by a fourth application executing on the guestoperating system, to modify a second guest system configurationparameter of the guest operating system; transmitting, by the secondapplication to the first application, a configuration requestcorresponding to the second guest system configuration parameter;presenting, based on the configuration request, a host systemconfiguration graphical user interface (GUI) configured to modify asecond host system configuration parameter associated with the secondguest system configuration parameter; receiving, via the host systemconfiguration GUI, a user-submitted configuration value for the secondhost system configuration parameter; and executing a fifth applicationon the guest operating system or the host operating system based on theuser-submitted configuration value.

G. The method as any of clauses A-F recite, further comprisingpresenting a host system configuration graphical user interface (GUI)including a control for modifying configuration parameters of aplurality of applications executing on the host operating system and aplurality of applications executing on the guest operating system;transmitting, by the host operating system, a configuration request tomodify a configuration parameter of a fourth application on the guestoperating system based on a selection within the host systemconfiguration GUI; and presenting, via a virtualization platform of thehost operating system, a settings module of the fourth application.

H. The method as any of clauses A-G recite, wherein the host systemconfiguration parameter includes at least one of a language setting, adate setting, a time setting, an accessibility setting, a batterysetting, a location information setting, a user setting, and/or aprivacy setting.

I. A device comprising: a memory; and at least one processor coupled tothe memory and configured to: determine, via a first applicationexecuting on a host operating system, system-wide configurationinformation associated with a host system configuration parameter and afirst configuration value of the host operating system; transmit asynchronization notification to a second application executing on aguest operating system, the synchronization notification correspondingto the system-wide configuration information; configure, via the secondapplication executing on the guest operating system, a guest systemconfiguration parameter to a second configuration value based on thesynchronization notification; and execute a third application on theguest operating system based on the second configuration value.

J. The device as clause I recites, wherein to determine the system-wideconfiguration information, the at least one processor is configured to:transmit, to the host operating system, a request for updates to aplurality of system-wide setting parameters of the host operatingsystem; and receive, in response to the request, the system-wideconfiguration information indicating a selection of the firstconfiguration value for the host system configuration parameter.

K. The device as clause I recites, wherein to determine the system-wideconfiguration information, the at least one processor is configured to:receive, from a listener registered to monitor for an update to the hostsystem configuration parameter, the system-wide configurationinformation indicating a selection of the first configuration value.

L. The device as any of clauses I-K recites, wherein to transmit thesynchronization notification, the at least one processor is configuredto: convert at least one of the host system configuration parameterand/or the first configuration value to a platform independentintermediate representation.

M. The device as clause L recites, further comprising determining atleast one of the guest system configuration parameter or the secondconfiguration value based at least in part on the platform independentintermediate representation.

N. The device as any of clauses I-M recites, wherein the host systemconfiguration parameter is a first host system configuration parameter,the guest system configuration parameter is a first guest systemconfiguration parameter, the at least one processor is configured to:detect a guest system request, initiated by a fourth applicationexecuting on the guest operating system, to modify a second guest systemconfiguration parameter of the guest operating system; transmit, by thesecond application to the first application, a configuration requestcorresponding to the second guest system configuration parameter;present, based on the configuration request, a host system configurationgraphical user interface (GUI) configured to modify a second host systemconfiguration parameter associated with the second guest systemconfiguration parameter; receive, via the host system configuration GUI,a user-submitted configuration value for the second host systemconfiguration parameter; and execute a fifth application on the guestoperating system or the host operating system based on theuser-submitted configuration value.

O. The device as any of clauses I-N recites, wherein the at least oneprocessor is configured to: present a host system configurationgraphical user interface (GUI) including a control for modifyingconfiguration parameters of a plurality of applications executing on thehost operating system and a plurality of applications executing on theguest operating system; transmit, by the host operating system, aconfiguration request to modify a configuration parameter of a fourthapplication on the guest operating system based on a selection withinthe host system configuration GUI; and present, via a virtualizationplatform of the host operating system, a settings module of the fourthapplication.

P. The device as any of clauses I-O recites, wherein the host systemconfiguration parameter includes at least one of a language setting, adate setting, a time setting, an accessibility setting, a batterysetting, a location information setting, a user setting, and/or aprivacy setting.

Q. One or more non-transitory computer-readable media encoded withinstructions that, when executed by one or more processors, configure acomputing device to perform a computer-implemented method as any ofclauses A-H recite.

R. A device comprising one or more processors and one or morecomputer-readable media encoded with instructions that, when executed bythe one or more processors, configure a computer to perform acomputer-implemented method as any of clauses A-H recite.

Conclusion

In closing, although the various embodiments have been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the subject matter defined in the appendedrepresentations is not necessary limited to the specific features oracts described. Rather, the specific features and acts are disclosed asexample forms of implementing the claimed subject matter.

What is claimed is:
 1. A computer-implemented method comprising:determining, via a first application executing on a host operatingsystem, system-wide configuration information associated with a firsthost system configuration parameter and a first configuration value ofthe host operating system; transmitting a synchronization notificationto a second application executing on a guest operating system, thesynchronization notification corresponding to the system-wideconfiguration information; detecting a guest system request, initiatedby a third application executing on the guest operating system, tomodify a guest system configuration parameter of the guest operatingsystem; transmitting, by the second application to the firstapplication, a configuration request corresponding to the guest systemconfiguration parameter; presenting, based on the configuration request,a host system configuration graphical user interface (GUI) configured tomodify a second host system configuration parameter associated with theguest system configuration parameter; receiving, via the host systemconfiguration GUI, a user-submitted configuration value for the secondhost system configuration parameter; and executing a fourth applicationon the guest operating system or the host operating system based on theuser-submitted configuration value.
 2. The method of claim 1, whereindetermining the system-wide configuration information comprises:transmitting, to the host operating system, a request for updates to aplurality of system-wide setting parameters of the host operatingsystem; and receiving, in response to the request, the system-wideconfiguration information indicating a selection of the firstconfiguration value for the first host system configuration parameter.3. The method of claim 1, wherein determining the system-wideconfiguration information comprises receiving, from a listenerregistered to monitor for an update to the first host systemconfiguration parameter, the system-wide configuration informationindicating a selection of the first configuration value.
 4. The methodof claim 1, wherein transmitting the synchronization notificationcomprises: converting at least one of the first host systemconfiguration parameter and/or the first configuration value to aplatform independent intermediate representation.
 5. The method of claim1, wherein the first host system configuration parameter includes atleast one of a language setting, a date setting, a time setting, anaccessibility setting, a battery setting, a location informationsetting, a user setting, and/or a privacy setting.
 6. The method ofclaim 1, wherein the guest operating system is an incompatible guestoperating system with the host operating system.
 7. A device comprising:a memory; and at least one processor coupled to the memory andconfigured to: determine, via a first application executing on a hostoperating system, system-wide configuration information associated witha host system configuration parameter and a first configuration value ofthe host operating system; transmit a synchronization notification to asecond application executing on a guest operating system, thesynchronization notification corresponding to the system-wideconfiguration information; configure, via the second applicationexecuting on the guest operating system, a guest system configurationparameter to a second configuration value based on the synchronizationnotification; and execute a third application on the guest operatingsystem based on the second configuration value; present a host systemconfiguration graphical user interface (GUI) including a control formodifying configuration parameters of a plurality of applicationsexecuting on the host operating system and a plurality of applicationsexecuting on the guest operating system; and transmit, by the hostoperating system, a configuration request to modify a configurationparameter of a fourth application on the guest operating system based ona selection within the host system configuration GUI.
 8. The device ofclaim 7, wherein to determine the system-wide configuration information,the at least one processor is configured to: transmit, to the hostoperating system, a request for updates to a plurality of system-widesetting parameters of the host operating system; and receive, inresponse to the request, the system-wide configuration informationindicating a selection of the first configuration value for the hostsystem configuration parameter.
 9. The device of claim 7, wherein todetermine the system-wide configuration information, the at least oneprocessor is configured to: receive, from a listener registered tomonitor for an update to the host system configuration parameter, thesystem-wide configuration information indicating a selection of thefirst configuration value.
 10. The device of claim 7, wherein totransmit the synchronization notification, the at least one processor isconfigured to: convert at least one of the host system configurationparameter and/or the first configuration value to a platform independentintermediate representation.
 11. The device of claim 10, wherein the atleast one processor is configured to: determine at least one of theguest system configuration parameter or the second configuration valuebased at least in part on the platform independent intermediaterepresentation.
 12. The device of claim 7, wherein the host systemconfiguration parameter includes at least one of a language setting, adate setting, a time setting, an accessibility setting, a batterysetting, a location information setting, a user setting, and/or aprivacy setting.
 13. The device of claim 7, wherein the guest operatingsystem is an incompatible guest operating system with the host operatingsystem.
 14. A non-transitory computer-readable device havinginstructions thereon that, when executed by at least one computingdevice, causes the at least one computing device to perform operationscomprising: determining, via a first application executing on a hostoperating system, system-wide configuration information associated witha host system configuration parameter and a first configuration value ofthe host operating system; transmitting a synchronization notificationto a second application executing on a guest operating system, thesynchronization notification corresponding to the system-wideconfiguration information; configuring, via the second applicationexecuting on the guest operating system, a guest system configurationparameter to a second configuration value based on the synchronizationnotification; and executing a third application on the guest operatingsystem based on the second configuration value; presenting a host systemconfiguration graphical user interface (GUI) including a control formodifying configuration parameters of a plurality of applicationsexecuting on the host operating system and a plurality of applicationsexecuting on the guest operating system; transmitting, by the hostoperating system, a configuration request to modify a configurationparameter of a fourth application on the guest operating system based ona selection within the host system configuration GUI; and presenting,via a virtualization platform of the host operating system, a settingsmodule of the fourth application.
 15. The non-transitorycomputer-readable device of claim 14, wherein the host systemconfiguration parameter includes at least one of a language setting, adate setting, a time setting, an accessibility setting, a batterysetting, a location information setting, a user setting, and/or aprivacy setting.
 16. The non-transitory computer-readable device ofclaim 14, wherein the guest operating system is an incompatible guestoperating system with the host operating system.
 17. The non-transitorycomputer-readable device of claim 14, wherein the operations furthercomprise: converting at least one of the host system configurationparameter and/or the first configuration value to a platform independentintermediate representation.
 18. The non-transitory computer-readabledevice of claim 17, wherein the operations further comprise: determiningat least one of the guest system configuration parameter or the secondconfiguration value based at least in part on the platform independentintermediate representation.
 19. The non-transitory computer-readabledevice of claim 18, wherein the host system configuration parameterincludes at least one of a language setting, a date setting, a timesetting, an accessibility setting, a battery setting, a locationinformation setting, a user setting, and/or a privacy setting.
 20. Thenon-transitory computer-readable device of claim 14, wherein theoperations further comprise: receiving, from a listener registered tomonitor for an update to the host system configuration parameter, thesystem-wide configuration information indicating a selection of thefirst configuration value.